23

» WarCraft 3 / jass if внутри loop

Похожие вопросы:

ответ
Существует лимит то ли на кол-во операций, то ли на время выполнения, то ли и на то и на другое. При превышении лимита поток молча рубится.
В качестве шаманства: попробуй завернуть каждый цикл в отдельную функцию. Врядли это поможет само по себе, но зато потом проще будет переходить к следующему шагу - разнесению на отдельные потоки.

23

» WarCraft 3 / For

Похожие вопросы:

ответ
а зачем там вейт?
Возможно ты сделал ещё способностей с Integer A, ведь это одна bj переменная, а за ту одну секунду вейта она может перезаписываться остальными триггерами с использованием for Integer A. Используй джасс©
ответ
Fandalf, just to watch is resources on the site. I've already found the berserk, and smthing that looks similar to Daemon of Chaos Bloodthirste
Well that's all I could find. Your welcome :)
ответ
Есть где-то статья, не помню где, если найду скину. Так вот, там все подробно описано, и даже написаны программы которые нужны для конвертации.
ответ
Tapper, не ,не помогает.
Если ты конечно про
//! nocjass

//! endnocjass
В общем, такая проблема возникает только на JNGP Requiem.
ответ
biridius:
if GetLocalPlayer() == Player(p) { a = 0 }
т.е. текст невидим для нужного игрока? 0 альфы это же 100% прозрачность
а текст неверный потому что накладывается мб от разных игроков
хз насчет альфы
дело в том, что когда ты выводишь текст напрямую в дебаг сообщение на экран в функции C2S, там все нормально, а когда из функции с тексттагом, он уже продублирован
либо я невнимательно где то посмотрел, либо лыжи не едут
если вывести сообщения в конце C2S, получим все нормально,
			msg(HText[1][p]+" " + I2S(p))
            msg(HText[2][p]+" " + I2S(p))
            msg(HText[3][p]+" " + I2S(p))
покажет
"щпаовапа 0"
"0"
"0"
если так же вывести сообщения в функции с тексттагом, то уже получится
"щпаовапа 0"
"щпаовапа 0"
"0"
upd
проблема была с массивами, были массивы HText[12][9], изменил на HText[12][10] и все стало нормально

23

» WarCraft 3 / Десинхронизация

Похожие вопросы:

ответ
нет
это конверт из гуи?
ответ
Claw, SomeFire, Timoxxx, а теперь фокус
у него были гет локал плеер
я их убрал
но он карту после этого не тестил
говорит потестит после нового года
ответ
Решения не было найдено! Самый верный способ сделать свою систему улучшений для юнитов, разбивая их на группы по признаку кол-ва грани у кости и кол-во костей, и в зависимости от этого повышать урон
ответ
и всё это в одной функции

23

» WarCraft 3 / jass локальные переменные

Похожие вопросы:

ответ
Спасибо всем за ответы и пояснения! Закрываю флудильню :с
ответ
скрин ошибки со строкой на которую ругается
а сори, плохо прочитал код
Tobi123 дело говорит
ты даже не знаешь что такое локальные переменные
короче в статьи и не вылазь от туда пока не узнаешь
ответ
массивы или хэш
один фиг
только массивы быстрее
массивы надо знать обязательно
они используются не только в программировании но и в математике и физике
та же хэш таблица построена на основе массива
ответ
koloff, только что проверил, если нет анимации death у эффекта, то он исчезает спустя несколько секунд после вызова функции DestroyEffect
ответ
Ну так то темповые глобалки и структуры vjass'а юзают уже хрен знает сколько лет, ибо да это побыстрее, тут даже вопрос не в памяти а в том что создание переменной это отельная операция как и обнуления, что ненужно делать с глобалками (их порой даже создавать ненужно, ибо bj глобалки сделали близзард) но нужно действовать осторожно, думать головой, не вызывая иных событий где будут юзатся эти же переменные.

23

» WarCraft 3 / Поверхности в MdlVis

Похожие вопросы:

ответ
Ошибка при работе с MdlVis. Попробуй открыть модель в версии 1.40, там должно изменение видимости в ключевых кадрах должно заработать. Однако советую сделать копию модели, т.к. 1.40, если не изменяет память, ломает уже настроенную видимость.
ответ
блин надо было просто перезапустить редактор помогло

23

» WarCraft 3 / Способности

Похожие вопросы:

ответ
Когда юнит проучивает пассивку, добавляй в группу юнита, который выучил пассивку. Дальше все просто -
Юнит умирает
Киллинг юнит в нашей группе - да
Дайинг юнит не в команде владельца киллинг юнит.
Игрок - адд проперти - 500 золото (овнер оф киллинг юнит)
ответ
Результат бонуса хп Кешируется, поэтом несмотря на уровень абилка всегда дает хп 1 уровня, а вот при ее удалении движок уберет юниту столько хп сколько указано в текущем уровне сплсобности, таким образом мы можем изменять хп юниту. Абилка в 2 лв,на первом уровне бонус маны иди хп 0, на втором обратный тому что М в хотим получить, к примеру если мы хотим получить 150 хп то пишем -150. Вручаем юниту абилку, ставим 2 уровень и тут же удаляем, движок добавит юниту 150 хп.
ответ
datar1231, Именно поэтому говорят не делать 2 две способности от друга потому когда юнита приходит приказ на использование способности он использует твою нестандартную способность но основываясь на айди стандартной способности или делай на основе другой или незанаю подействует ли канал.
ответ
не вздумай следовать этому совету, лол. игра может только 4 абилки в предмете разместить.
бери книгу заклинаний, клади туда че хочешь. её и добавляй. если нужна активка на предмете, то добавляй её дважды, чтобы было так:
активка
книга
активка
и все будет
ответ
В РО, такое невозможно сделать. Подробно на триггерах? Ну вот пример, а если нужно ещё подробнее, то учебник по Jass в руки.
На проклятие в РО,или любой другой спелл,ставится минимальная дистанция
function Trig_Spell_Actions takes nothing returns nothing
local location loc = Location(GetWidgetX(GetSpellAbilityUnit()),GetWidgetY(GetSpellAbilityUnit()))
local unit u = null
if GetSpellAbilityId() == 'АЙ ДИ СКИЛЛА' then
set u = CreateUnitAtLoc(GetOwningPlayer(GetSpellAbilityUnit()),'АЙ ДИ ДАММИ ЮНИТА-ЭФФЕКТА',loc,0.00)
call IssueTargetOrder(u,"curse",GetSpellTargetUnit())
endif
call RemoveLocation(loc)
set loc = null
endfunction

//===========================================================================
function InitTrig_Spell takes nothing returns nothing
    local integer i = 0
    set gg_trg_Spell = CreateTrigger()
    loop 
    exitwhen i > 12
        call TriggerRegisterPlayerUnitEvent(gg_trg_Spell, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
    set i = i + 1
    endloop
    call TriggerAddAction( gg_trg_Spell , function Trig_Spell_Actions )
endfunction
Потом тоже самое, только отследить каст проклятия, проверить тип юнита и удалить его из игры.

23

» WarCraft 3 / Помогите вспомнить название карты

Похожие вопросы:

ответ
Все нашел!
Ошибся, вот она, которую я имел ввиду, версия мапы оказалось 3.6 100% она.
ответ
8gabriel8, точно. Их там нет. Я перепутал. Не в константах, а в интерфейсе.
Текст - Общий - Жульничество разрешено
ответ
закрыт по таймауту

23

» WarCraft 3 / Модель стены

Похожие вопросы:

ответ
В редакторе моделей для Вара необходимо создавать точки крепления огня (кости). Они называются sprite.
Цитирую фразу из статьи: Точки крепления и Событийные объекты.
Sprite - крепление для эффекта огня, который появляется при повреждениях, если модель используется для здания или для юнита, классифицируемого в РО как механический.
ответ
RedLegion:
dave_wwid:
Есть статья в базе
Basile2:
Текстуру перерисуй и будет счастье
Не силён в таких делах. Хотелось просто и без гемора найти модель. Видел на картах есть такие, но увы они запротекчены.
Открой прогой mpq editor
ответ
Уважаемый пользователь! Спешу вас предупредить что есть такая вещь как поиск, вот за 5 минут на сайте нашол:
Если еще немного покопатса на сайте в разделе декораций - можно нагрести кучу добра!
И вобще мой вам совет - научитесь минимальному моделингу: сможете клепать такие вещи за 3 минуты на коленке с необходимым вам видом, формой и текстурой.

23

» WarCraft 3 / Видимость

Похожие вопросы:

ответ
при смерти юнита обзор вокруг него постепенно уменьшается
это своеобразный модификатор для обзора
он после этого сбрасывается на нормальное значение, но только если не помешать ему
воскрешение юнита - вмешивается в этот процесс
баг обходится быстрым сбросом вижена (дать -99999, и отнять... или наоборот... сейчас поищу описание)
. . .
В общем, я не нашёл точного решения, а тестить какое из них здесь точнее подойдёт - нет времени.
Вариант А - при воскрешении дать на 0.00 (или 0.01) сек абилку на +99999 ренжа обзора и забрать
Вариант Б - сделать то же самое, но на -9999 ренжа
Там есть манипуляции с 0.4 реал-тайма для перерасчёта видимых тайлов игроку, и это должно вроде как дать рывок в нормализации зрения героя...
Если не поможет - резко смени время суток (+12 часов), и потом обратно (ещё +12 часов), может помочь
Нужен ли тут временной промежуток в 0.00 или 0.01 сек - не знаю, проверь сам
ответ
A.W.K.:
Ой все, я просто поставил "облегченная модель". А она только у деревьев facepalm
ответ
Ознакомились с правилами сайта и создали вопросы отдельно
ответ
~8gabriel8:
Как-то щёлкнул галку просто в параметрах карты, что скрытые области частично видимы)

23

» WarCraft 3 / Загрузочный экран

Похожие вопросы:

ответ
Можно! Но всё будет зависить от того какую рассу выбрал игрок при старте. И запихиваешь свои 5 лаодскринов в карту.
ответ
Я ж те писал. Поле описания карты оставляешь пустым. Всё описание вставляешь в картинку загрузочного экрана
Но надо что бы был текст на загрузочном экране(который настраивается через редактор)
Больше ничего не надо, нет? Текст на картинке делается в 20 секунд. Если бы всё в этом мире делалось через фразу "не хочу"
ответ
Насколько я помню, я использовал разные имена LoadingScreenA.mdx, LoadingScreenB.mdx и т.д. для каждой карты. Естественно и их компоненты переименовывал соответственно - LoadingScreenABL(BR/TL/TR)
ответ
Прелоад по факту стартует только после исполнения загрузки карты. Таким образом штатным способ не сделаешь различные загрузочные экраны.
П.С. Кроме этого ты же прописываешь пути в импорте своих изображений. Несколько загрузочных экранов с одним путем? Врятли
П.С,. и как ты интересно собирался вызвать пролоад до загрузки карты?) Создашь функцию в чате лобби?)))

23

» WarCraft 3 / Портрет модели

Принятый ответ
Похожие вопросы:

ответ
Похоже это две разные, полноценные модели. Портрет - на самом деле модель Ледяного, а не-портрет - Лесного. Не знаю как автор до этого додумался. Портрет сразу вшит в модель.
Просто уберите _Portrait из названия и всё будет работать.
ответ
Возможно, в анимации "birth" в модели этого здания также через пробел написано "portrait". Убери слово "portrait" в анимации "birth" и добавь его в анимации "stand" или создай отдельную анимацию "portrait". Также косяк может быть в самой анимации "portrait", если косяк там, то опять же придётся добавить через пробел слово "portrait" к анимации "stand" или вручную создать новую анимацию "portrait", скопировав ключевые кадры из "stand", чтобы не париться.
ответ
JesusHipster:
Если ты хочешь просто камеру и портрет - импортировать их под одним именем, но второй модели приписать _portrait. Хочешь одной моделью - сделать камеру в camera manager во вкладке окна. Там все интуитивно. Если именно объединить модели, то такой функционал был у одной утилицы с хайва, но нужна еще ручная настройка и это совсем не в модел эдиторе делается. веса от этого не сильно убавится, меш не так много весит обычно как анимации, так что запариваться не советую с этим.
Я импортирую и портрет и модель, Sniper.mdx и Sniper_Portrait.mdx, я их импортирую, но вместо портрета у снайпера случайный ракурс, как и без портрета. Может, кинуть файлы, сам протестишь?
ответ
Не тупи. Сделай трансляцию от ТИПА ЮНИТА, а не от конкретного юнита.

23

» WarCraft 3 / Вопрос по утечкам

Похожие вопросы:

ответ
local real x = GetRandomReal(GetRectMinX(GetPlayableMapRect()), GetRectMaxX(GetPlayableMapRect()))
local real y = GetRandomReal(GetRectMinY(GetPlayableMapRect()), GetRectMaxY(GetPlayableMapRect()))
...
(действия с координатами)
...
Любые действия с локейшном можно переделать под координаты, если не используется z-координата, как сказано выше. Но z-координату используют не только лишь все, мало кто может это делать.
И обнулять ничего не придётся, так как действительное число не утекает.
ответ
интережер это число
а null это объект
число не является объектом
следовательно их нельзя сравнивать/приравнивать
ответ
GF RaiseD:
Я знаю только один способ избавления от утечек - писать код без них.Тебе нужен кто-то знающий игровые скрипты или злосчастный Jass. Иначе уровень неопределённости вопроса не позволит подсказать что-то дельное.
ответ
еще раз - лучше скачать handle counter и посмотреть его показания, сколько объектов создается при касте
стремление сделать все безутечно похвально, но все хорошо в меру

23

» WarCraft 3 / Анимации эффекта

Похожие вопросы:

ответ
незнаю поможет или нет но пробни через кустом скрипт написать это AddUnitAnimationProperties(u, "Alternate", false)
где u - это твой юнит и советую перед ней поставить паузу тригера на 0.1 хотяб
ответ
у Сларка это даммик, который двигается вместе с ним, и потом ремувится
у Баланара - лопается, когда день наступает... присмотришь получше
ответ
Я могу поступить даже лучше! Я научу тебя как это сделать самому.
  • Открываешь MdlVis
  • Пункт меню "Модули" -> "Редактор анимаций"
  • В списке "Текущая анимация" выбираешь анимацию Birth
  • С помощью Shift выделяешь на полосе анимации нужный отрезок начиная с 0
  • Пункт меню "Кадры" -> "Отрезать"
  • Сохраняешь модель.
  • profit

23

» WarCraft 3 / Модель через блокнот

Похожие вопросы:

ответ
делается в пару кликов в вот этой версии mdlvis'a...
удаляешь анимации, заходишь оптимизатор - проверяешь что стоит галочка на 3 пунке снизу, жмёшь Ок...

23

» WarCraft 3 / 2 разных способностей от одной

Похожие вопросы:

ответ
  1. Думаю, что можно.
Берем основную модель, возможно, вообще без мяса, только с гусеницами, но с кучей точек крепления. Также берем кучу моделей-аттачметов, представляющих собой эти самые пушки, корпуса и все прочее. При выборе характеристик модели через диалог или интерфейс соответственно создаем на основной модели эффекты-аттачменты, будет собрана техника. Такие штуки, как двигатель и прочие невидные извне элементы будут скорее входить в математическую модель юнита, но это также можно запилить. Название танка - сразу не скажу, есть ли триггер на смену, но на таблице рекордов можно отобразить что угодно.

2.Тоже можно.
Создаем погодный в определенной местности и делаем два триггера для контроля входа-выхода юнитов из нее. На искомых юнитов применяем нужные способности - и все готово.

  1. Здесь чуть сложнее: нужно постоянно проверять тип местности под юнитом, но тоже можно. Проверка на ограждения тоже может бить сделана.

4.Это уже интереснее. Видел раньше подобное в играх. При каждой атаке юнита случайным образом наносим или не наносим доп. урон, эффект горения, кидаем спелл на цель в зависимости от теоретического места попадания атаки.

5.И это можно. Но нужно писать нестандартную систему Альянса. Но через триггеры и JASS все можно...

  1. Продажа техники - лучше через способность, что бы кидать ее на понравившегося юнита, не стоит покупать кота в мешке. Стоимость должна зависеть от технического уровня юнита, его текущего состояния (мертвый танк попадет вам бесплатно, сами чините!), если он был модернизован дополнительно, то это тоже входит в стоимость. Разрешение на продажу делаем аналогично.

  1. Это легко через Custom Value и переменние.

Как ты понял, все что ты предложил создать можно, но на это нужно потрать хороший кусок времени. Остается пожелать тебе удачи над созданием проекта - мне идея уже нравится.
ответ
используй морф, например способность Темный 'Srtt'

23

» WarCraft 3 / Альтернативная форма

Принятый ответ
Похожие вопросы:

ответ
Номер 29. И там реклама вылезает. Самлму было интерестно. Вот и выписал всё.
ответ
Так ты не объяснил , почему Иллидан быстро превращается , хотя стоит задержка "0" , а у моих то же "0" .
Вот ошибка скрин , там нужно 0 поставить . . .
ответ
Мб оно связано с морфом, или с какими то параметрами заклинания - в доте аватар превращал тинкера в танк..
Можно попробовать морфнутся в альтернативного тинкера скиллом 'Aave' - превратится в сфинкса, тогда он навсегда останется тинкером в ульте.
ответ
вариант А - тупо добавить аним.таг юниту, его свойства не изменятся, просто будет выглядеть как медведь
вариант Б - делать абилки в спеллбуке пермаментными, тогда они не будут пропадать

23

» WarCraft 3 / Помогите со скилом

Похожие вопросы:

ответ
Я не понимаю как сделать, чтобы юнит применял способность для применения которой не нужно выбирать цель каста
Если сменить удар грома, на скил полиморф(он как правило требует чтобы игрок выбрал скил и кликнул по противнику) то этот тригер запашет
Проблема в том что Действие: Боевая единица: приказать юнит2 (юнит, его способность) юнит1 , способности нет в списке
Проверил с 3-мя юнитами бить типа со скилом, ток тогда и кастит
ответ
Мне надо чтобы юнит кастовал магией по цели и больше ничего, я не имел в виду дать ему маг атаку
ответ
Воу... Джаз не обязательно изучать, всё это можно сделать и на ГУИ, тем более такую простую способность. На этом сайте есть тема "Заклинания на заказ". Заказывай, жди, получай, изучай. Если прям горит, могу сделать для тебя сам.

23

» WarCraft 3 / Помогите со скилом

Похожие вопросы:

ответ
Я не понимаю как сделать, чтобы юнит применял способность для применения которой не нужно выбирать цель каста
Если сменить удар грома, на скил полиморф(он как правило требует чтобы игрок выбрал скил и кликнул по противнику) то этот тригер запашет
Проблема в том что Действие: Боевая единица: приказать юнит2 (юнит, его способность) юнит1 , способности нет в списке
Проверил с 3-мя юнитами бить типа со скилом, ток тогда и кастит
ответ
Мне надо чтобы юнит кастовал магией по цели и больше ничего, я не имел в виду дать ему маг атаку
ответ
Воу... Джаз не обязательно изучать, всё это можно сделать и на ГУИ, тем более такую простую способность. На этом сайте есть тема "Заклинания на заказ". Заказывай, жди, получай, изучай. Если прям горит, могу сделать для тебя сам.

23

» WarCraft 3 / Вопрос про триггер

Похожие вопросы:

ответ
  1. Думаю, что можно.
Берем основную модель, возможно, вообще без мяса, только с гусеницами, но с кучей точек крепления. Также берем кучу моделей-аттачметов, представляющих собой эти самые пушки, корпуса и все прочее. При выборе характеристик модели через диалог или интерфейс соответственно создаем на основной модели эффекты-аттачменты, будет собрана техника. Такие штуки, как двигатель и прочие невидные извне элементы будут скорее входить в математическую модель юнита, но это также можно запилить. Название танка - сразу не скажу, есть ли триггер на смену, но на таблице рекордов можно отобразить что угодно.

2.Тоже можно.
Создаем погодный в определенной местности и делаем два триггера для контроля входа-выхода юнитов из нее. На искомых юнитов применяем нужные способности - и все готово.

  1. Здесь чуть сложнее: нужно постоянно проверять тип местности под юнитом, но тоже можно. Проверка на ограждения тоже может бить сделана.

4.Это уже интереснее. Видел раньше подобное в играх. При каждой атаке юнита случайным образом наносим или не наносим доп. урон, эффект горения, кидаем спелл на цель в зависимости от теоретического места попадания атаки.

5.И это можно. Но нужно писать нестандартную систему Альянса. Но через триггеры и JASS все можно...

  1. Продажа техники - лучше через способность, что бы кидать ее на понравившегося юнита, не стоит покупать кота в мешке. Стоимость должна зависеть от технического уровня юнита, его текущего состояния (мертвый танк попадет вам бесплатно, сами чините!), если он был модернизован дополнительно, то это тоже входит в стоимость. Разрешение на продажу делаем аналогично.

  1. Это легко через Custom Value и переменние.

Как ты понял, все что ты предложил создать можно, но на это нужно потрать хороший кусок времени. Остается пожелать тебе удачи над созданием проекта - мне идея уже нравится.
ответ
GF RaiseD:
Zeuz, ты должно быть хотел спросить можно ли в функции "IniTrig_Bleach" создавать сразу несколько локальных триггеров, добавлять им ивенты и действия и не будут ли они мешать друг другу. Не будут. Хотя события так ты показал в примере не выйдет добавить. Должно быть ты просто не помнишь название функции.
ответ
создаём юнита
даём юниту таймер
и проверяем что с ним стало
офигиваем от того что выяснили это сами
и не задаём тупых вопросов
на 4 дня пропал и уже 69 тупых вопросов
ответ
Да у тебя куча дыр, во-первых ты не запустил триггер 115 области lumber direction, и оно соответственно не реагирует на событие. Во-вторых перепроверь gold проверку условия на да или нет в той карте которую ты отправил стоит нет
А золото не движется потому что ты ожидание 0,5 сек поставил а область в милисекунде от изначальной то есть триггер не успевает запуститься
ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.

23

» WarCraft 3 / scope

Похожие вопросы:

ответ
Существует лимит то ли на кол-во операций, то ли на время выполнения, то ли и на то и на другое. При превышении лимита поток молча рубится.
В качестве шаманства: попробуй завернуть каждый цикл в отдельную функцию. Врядли это поможет само по себе, но зато потом проще будет переходить к следующему шагу - разнесению на отдельные потоки.
ответ
~16GB:
function AddLocalEffect takes string eff, unit u,player p,string a returns effect
if not IsPlayerAlly(GetLocalPlayer(),p) and GetPlayerState(GetLocalPlayer(),PLAYER_STATE_OBSERVER) == 0 then
set eff = " "
endif
return AddSpecialEffectTarget(eff,u,a)
endfunction
неохота качать JNGP чтоб твой код тестить, заюзай эту функцию
ответ
nvc123, У него там отсутствует CreateGroup()
А ещё она в заголовке globals не null'ась

Я о group G
ответ
Кет, это 4 оператора взятых из вджасс и сиджасс
видимо так юные айсфроги называют эти 2 диалекта jass
ответ прост
качаем джнгп последней версии и ЧИТАЕМ МАНУАЛЫ
ответ
vjass manual:
Также библиотеки могут ссылаться на другие за счет следующей конструкции:
Код:
library A uses B
endlibrary
Это значит, что в библиотеки А содержится функция, вызывающая функцию в библиотеке В, следовательно библиотека В будет размещена выше по коду.

23

» WarCraft 3 / Изменение высоты рельефа

Похожие вопросы:

ответ
Меньше чем -128 ты ландшафт НИКАК ВООБЩЕ НЕ опустишь (хотя, можешь перепилить движок варика).